package fr.afcepf.ai89.esharing.metier;

import java.util.List;

import fr.afcepf.ai89.esharing.entity.CategorieAem;
import fr.afcepf.ai89.esharing.entity.Civilite;
import fr.afcepf.ai89.esharing.entity.Complement;
import fr.afcepf.ai89.esharing.entity.FrCodePostalAsso;
import fr.afcepf.ai89.esharing.entity.FrCommune;
import fr.afcepf.ai89.esharing.entity.FrCommunePK;
import fr.afcepf.ai89.esharing.entity.FrDepartement;
import fr.afcepf.ai89.esharing.entity.FrRegion;
import fr.afcepf.ai89.esharing.entity.LibelleSousAvis;
import fr.afcepf.ai89.esharing.entity.Marque;
import fr.afcepf.ai89.esharing.entity.MotivationAnnulation;
import fr.afcepf.ai89.esharing.entity.MotivationRefus;
import fr.afcepf.ai89.esharing.entity.NoteAvis;
import fr.afcepf.ai89.esharing.entity.TypeAem;

public interface IBusinessApprovisionnerCriteres {

	List<FrRegion> getRegions();
	
	List<FrDepartement> getDepts();
	List<FrDepartement> getDepts(FrRegion reg);
	
	List<FrCommune> getCommunes(FrDepartement dept);
	List<FrCommune> getCommunes(int codePostal);
	
	List<Integer> getCodesPostaux();
	List<Integer> getCodesPostaux(FrDepartement dept);
	List<Integer> getCodesPostaux(FrCommune commune);
	
	FrRegion getRegion(int idRegion);
	FrDepartement getDept(String idDept);
	FrCommune trouverCommune(String idDept, int idCommune);
	
	FrCodePostalAsso associerCommuneCP(FrCommune commune, int codePostal);
	
	List<CategorieAem> getCategories();
	List<CategorieAem> getMasterCategories();
	List<CategorieAem> getSousCategories(CategorieAem cat);
	CategorieAem getSuperCategorie(CategorieAem cat);
	CategorieAem getCategorieAem(int idCat);
	
	List<TypeAem> getTypesAem();
	List<TypeAem> getTypesAem(CategorieAem cat);
	TypeAem getType(int idType);
	CategorieAem getParentCategorie(TypeAem type);
	
	List<Civilite> getCivilites();
	
	List<Complement> getComplements();
	
	List<Marque> getMarques();
	
	List<NoteAvis> getNotesAvis();
	
	List<LibelleSousAvis> getLibelleSousAvis();
	List<LibelleSousAvis> getLibelleSousAvisSurPreteur();
	List<LibelleSousAvis> getLibelleSousAvisSurEmprunteur();
	
	List<MotivationAnnulation> getMotivsAnnul();
	
	List<MotivationRefus> getMotivsRefus();
	
}
